package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.dto.SysDictDataSaveDTO;
import cn.com.dcsgo.domain.dto.SysDictDataUpdateDTO;
import cn.com.dcsgo.domain.po.SysDictData;

import java.util.List;

/**
 * SysDictDataService
 *
 * @author Dcsgo
 * @since 24/5/2025 上午 9:12
 */

public interface SysDictDataService extends SysBaseService<SysDictData> {

    /**
     * 根据字典类型删除字典数据
     *
     * @param dictType 字典类型
     * @return 受影响的行数
     */
    int deleteByDictType(String dictType);

    /**
     * 添加字典数据
     *
     * @param saveDTO 添加字典数据 请求参数
     * @return 受影响的行数
     */
    int save(SysDictDataSaveDTO saveDTO);

    /**
     * 根据字典数据编号更新字典数据
     *
     * @param updateDTO 新的字典数据信息
     * @return 受影响的行数
     */
    int update(SysDictDataUpdateDTO updateDTO);

    /**
     * 根据字典数据编号获取字典数据
     *
     * @param dictCode 字典数据编号
     * @return 字典数据，字典编号不存在返回null
     */
    SysDictData get(Long dictCode);

    /**
     * 根据字典数据编号删除字典数据
     *
     * @param dictCode 字典数据编号
     * @return 受影响的行数
     */
    int remove(Long dictCode);

    /**
     * 根据字典类型获取字典数据
     *
     * @param dictType 字典类型
     * @return 字典类型关联的字典数据
     */
    List<SysDictData> get(String dictType);


    /**
     * 获取所有字典数据
     *
     * @return 所有字典数据
     */
    List<SysDictData> list();
}
